# coding: utf-8
#程序主文件

import ftplib

#自定义文件
import RSA_op
import SHA256_op
import File
import Certificate_CA

if __name__ == "__main__":
    while True:
        print("请选择功能:")
        print("1. 生成公钥和私钥")
        print("2. 生成证书申请文件")
        print("3. 生成证书文件")
        print("4. 验证证书")
        print("5. 吊销证书")
        print("0. 退出")
        try:
            choose_num = int(input("请输入:"))
        except:
            choose_num = -1
        if choose_num==1:
            name = input("请输入证书使用者姓名:")
            File.create_key_file(name)
        elif choose_num==2:
            name = input("请输入证书使用者姓名:")
            Certificate_CA.apply_certificate(name)
        elif choose_num==3:
            name = input("请输入证书使用者姓名:")
            try:
                start = int(input("请输入证书的起始有效时间(以天为单位, 正数代表延迟生效, 负数代表提前生效, 不输入默认为0):"))
            except:
                start = 0
            try:
                while True:
                    use = int(input("请输入证书的有效期(以天为单位, 默认为30天):"))
                    if (use<0):
                        use = int(input("有效期不能为负, 请重新输入:"))
                    else:
                        break
            except:
                use = 30
            Certificate_CA.finish_certificate(name, start, use)
        elif choose_num==4:
            name = input("请输入证书使用者姓名:")
            Certificate_CA.verify_certificate(name)
        elif choose_num==5:
            name = input("请输入证书使用者姓名:")
            Certificate_CA.cancel_certificate(name)
        elif choose_num==0:
            exit()
        else:
            choose_num = int(input("输入错误，请输入:"))
    